﻿//1493. 删掉一个元素以后全为 1 的最长子数组
//给你一个二进制数组 nums ，你需要从中删掉一个元素。
//请你在删掉元素的结果数组中，返回最长的且只包含 1 的非空子数组的长度。
//如果不存在这样的子数组，请返回 0 。



class Solution {
public:
    int longestSubarray(vector<int>& nums)
    {
        int begin = 0, end = -1;
        int flag = 0, len = 0;
        int n = nums.size();
        for (end = 0; end < n; end++)
        {
            if (nums[end] == 0) flag++;
            while (flag > 1)
            {
                if (nums[begin] == 0)   flag--;
                begin++;
            }
            len = max(len, end - begin);
        }
        if (begin == 0)    return n - 1;
        return len;
    }
};